#ifndef nsMBCSGroupProber_h__
#define nsMBCSGroupProber_h__

#include "nsUTF8Prober.h"
#include "nsGB2312Prober.h"

#define NUM_OF_PROBERS    7

class nsMBCSGroupProber: public nsCharSetProber {
  public:
    nsMBCSGroupProber( uint32_t aLanguageFilter );
    virtual ~nsMBCSGroupProber();
    nsProbingState HandleData( const char* aBuf, uint32_t aLen );
    const char* GetCharSetName();
    nsProbingState GetState( void ) {return mState;}
    void      Reset( void );
    float     GetConfidence( void );

    #ifdef DEBUG_chardet
    void  DumpStatus();
    #endif
    #ifdef DEBUG_jgmyers
    void GetDetectorState( nsUniversalDetector::DetectorState( &states )[nsUniversalDetector::NumDetectors], uint32_t &offset );
    #endif

  protected:
    nsProbingState mState;
    nsCharSetProber* mProbers[NUM_OF_PROBERS];
    bool            mIsActive[NUM_OF_PROBERS];
    int32_t mBestGuess;
    uint32_t mActiveNum;
    uint32_t mKeepNext;
};

#endif
